home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib04.dsk
/
APPLE THREE-D SHAPES.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
53 lines
10 ST = 20:EN = 170:S = 7:P = .05:X1 = 139
20 RA = (EN -ST)/2
30 :
40 REM ST IS Y STARTING VALUE
50 REM EN IS Y ENDING VALUE
60 REM RA IS THE RADIUS
70 REM S IS THE STEP
80 REM P IS THE PRECISION
90 REM .05-PRECISE BUT SLOW
100 REM .3-FAST BUT IMPRECISE
110 :
120 :
130 GOSUB 310: GOTO 260: REM MAIN PROGRAM
140 :
150 REM DRAW THE ELIPSE
160 :
170 FOR I = 0 TO 6.4 STEP P
180 X = A * COS(I) +X1
190 Y = (A/4) * SIN(I)/1.212 +Y1
200 IF I = 0 THEN HPLOT X,Y: NEXT
210 HPLOT TO X,Y: NEXT
220 RETURN
230 :
240 REM MAIN PROGRAM
250 :
260 HGR : POKE -16302,0: HCOLOR= 3
270 FOR Y1 = ST TO EN STEP S
280 K = (Y1 -ST) -(EN -Y1)
290 ON J GOSUB 500,510,520,530,540,550,560,570,580,590
300 GOSUB 170: NEXT : WAIT -16384,128: POKE -16368,0: TEXT : END
310 TEXT : HOME : VTAB 3: PRINT "WHICH FIGURE TO DRAW ?": POKE 33,35: POKE 32,5: PRINT : PRINT
320 PRINT "(1) SPHERE"
330 PRINT "(2) HYPERBOLA"
340 PRINT "(3) CYLINDER"
350 PRINT "(4) CONE"
360 PRINT "(5) INVERTED VASE"
370 PRINT "(6) HOURGLASS"
380 PRINT "(7) PEANUT"
390 PRINT "(8) BELL"
400 PRINT "(9) TOP"
410 PRINT "(10) TWO WINEGLASSES"
420 TEXT : VTAB 19: PRINT : INPUT "YOUR CHOICE ?";J$:J = VAL(J$): IF J = 0 THEN J = 1
430 RETURN
500 A = ( SQR( ABS(RA ^2 -( ABS(K/2) ^2)))) *1.212: RETURN : REM SPHERE
510 A = (K/(RA/2) *1.5) ^2 +5: RETURN : REM HYPERBOLA
520 A = 30: RETURN : REM CYLINDER
530 A = A +2: RETURN : REM CONE
540 A = ((K/RA) ^3 +5) *4: RETURN : REM INVERTED VASE
550 A = SIN(K/RA) *40: RETURN : REM 3-D SINE WAVE
560 A = (( SIN(K/RA)) ^2 +( COS(K/RA))) *40: RETURN : REM SEMI-SINE WAVE
570 A = A +(K/(RA/2) *.9) ^2: RETURN : REM BELL
580 A = RA - ABS(K/2): RETURN : REM TOP
590 A = COS(RA/K) *40 + SIN(RA/K) ^2 *40: RETURN : REM WINEGLASSES